The present disclosure relates generally to REST services, and more particularly, to techniques (e.g., systems, methods, computer program products storing code or instructions executable by one or more processors) for enhancing REST services with custom data.
REpresentational State Transfer (REST) is a key design idiom that embraces a stateless client-server architecture in which web services are viewed as resources (e.g., pictures, video files, Web pages, business information, or anything that can be represented in a computer-based system) and can be identified by their uniform resource identifiers (URIs). A web service based on REST is called a REST or RESTful service. The focus of a REST service is on the resources and how to provide access to these resources. For example, web service clients that want to use these resources access a particular representation by transferring application content using a small globally defined set of remote methods that describe the action to be performed on the resource (e.g., create, read, update, and delete (CRUD)). REST is an analytical description of the existing web architecture, and thus the interplay between the style and the underlying hypertext transfer protocol (HTTP) appears seamless.
A primary constraint of a REST service is that the resources are controlled by the base application system. Nonetheless, it is often the case that applications of web service clients such as small scale departmental applications often need to access existing base application systems via REST services and enhance the controlled data resources with custom data such as additional application/department specific data. The common industry solution is to make the base application system customizable or extensible. Each base application system therefore has to be customized or extended to provide the custom data that may or may not be web service client specific. This has several problems including: (i) limited scalability and modifiability, (ii) metadata about the customized resources may be limited or missing, which may make controlling caching, detecting transmission errors, negotiating an appropriate representation format, and/or performing authentication or access control difficult, and (iii) added security measures for the custom data.
Therefore, a method for enhancing REST services with custom data is desired.